// 如果一个函数没有任何返回值，那么返回值是void类型
function sum(num1: number, num2: number): void {
  console.log(num1, num2);
  return 123 // 明确声明返回值为void时不可以有返回值
}
// 上下位类型推导出返回值为void时，可以有返回值
const names = ['aaa', 'bbb']
names.forEach((item: string, index: number, arr: string[]) => {
  return 123 // 有返回值也没有报错
})

// 应用场景： 用于指定函数的返回值是void
type FnType = (...args: any[]) => void
function delayExecFn(fn: FnType) {
  setTimeout(() => {
    fn()
  }, 1000)
}
delayExecFn((name, age) => {
  console.log(name, age);
  
})
delayExecFn(123) // 报错
export{}